const gulp = require("gulp");
const proxy = require("http-proxy-middleware");
const connect = require("gulp-connect");
const del = require("del");

// 清理 dist 目录
gulp.task('cleanDist', function() {
    return del(['dist/**/*']);
});

// 复制文件到 dist
gulp.task('copyFiles', function() {
    return gulp.src([
        'login.html',
        'index.html',
        'home.html',
        'views/**/*',
        'config/**/*',
        'component/**/*',
        'assets/**/*',
    ], { base: './' })  // 选择 src 目录下的所有文件
        .pipe(gulp.dest('dist'));  // 将文件复制到 dist 目录
});

function server() {
    connect.server({
        livereload: true,
        root: ".",
        port: 8008,
        host: "localhost",
        middleware: function (connect, opt) {
            return [
                proxy("/admin-api", {
                    target: "http://localhost:48088",
                    changeOrigin: true,
                }),
            ];
        },
    });
}

// 导出任务并使用 gulp.series 或 gulp.parallel 执行
exports.cleanDist = gulp.series('cleanDist');  // 清理 dist 目录
exports.copyFiles = gulp.series('copyFiles');  // 复制文件任务
exports.server = server;                      // 启动服务器

// 默认任务：清理 dist 目录并复制文件，然后启动服务器
exports.default = gulp.series('cleanDist', 'copyFiles', server);
